<?php


//文件上传类
  class UpTool{
    
      protected $allowExt = 'jpg,jpeg,png';
      protected $maxSize = 1.9;  //允许上传的最大文件M数

      public $err = 0;
      public $error = [
             0=> '没错 ',
	      	 1=> '上传文件大小超过了设定的最大值',
	      	 2=> '上传文件大小超过了html表单中选项指定的值',
	      	 3=> '文件部分上传',
	      	 4=> '文件没有被上传',
	      	 6=> '找不到临时文件',
	      	 7=> '文件写入失败',
	      	 8=> '文件目录不正确',
	      	 9=> '获取后缀失败',
	      	 10=> '后缀不在指定范围内',
	      	 11=> '文件大小超过设定值',
      ];

      public function up($tmp){
      	  // 判断传入的 上传文件 名称是否存在
      	  if(!isset($_FILES[$tmp])){
      	  	   return false;
      	  }
          
           $file = $_FILES[$tmp];
          
      	  if($file['error']){
      	  	  $this->err = $file['error'];
              return false;
      	  }

      	  //判断
      	  if(!$this->setdir()){
      	  	   $this->err = 8;
      	  	  return false;
      	  }

      	  if(!$this->getSuffix($file['type'])){
      	  	 $this->err = 9;
      	  	  return false;
      	  }

      	  if(!$this->checkSize($file['size'])){
      	  	 $this->err = 11;
      	  	  return false;
      	  }

      	  $dir = $this->setdir() . '/' . $this->getFileName() . '.' . $this->getSuffix($file['type']);

      	  if(!move_uploaded_file($file['tmp_name'],$dir)){
      	  	  return false;
      	  }

//      	  return str_replace(ROOT, '', $dir);
      	  return str_replace(ROOT, '', $dir);


      }

      //输出对应的错误信息
      public function error(){
      	return $this->error[$this->err];
      }

     // 判断文件存放的目录是否存在
      public function setdir(){
          $dir = ROOT . 'data/images/' . date('Ymd');
//      	$dir = '../data/images/' . date('Y-m-d');
      	if(!is_dir($dir)){
      		mkdir($dir);
      	}
      	return $dir; 
      }

      //获取文件后缀
      public function getSuffix($fileType){
      	$suffix = explode('/',$fileType);
      	return end($suffix);
      }
    // 获取指定长度的随机文件名
     public function getFileName($leng = 6){
     	$str = 'abcdefghijklmnopqrsvuwyx0123456789';
     	return time().substr(str_shuffle($str),0,6);
     }

     //验证文件大小是否符合设置值
     public function checkSize($fileSize){
     	return $this->maxSize <= $fileSize * 1024 * 1024;
     }

    //判断文件后缀是否 在指定范围内
     public function isTrue($fileType){
     	$suffix = explode(',',$fileType);
     	if(!in_array($this->getSuffix($fileType),$suffix)){
     		return false;
     	}
     	return true;
     }

       


  }